var dayNum: number = 1;
var playerHeightNum: number = 180;
var playerHeightShow: string;
var energy: number = 100;
var gameEnd: boolean = false;
var storyPage: HTMLElement | null = document.getElementById("storyPage");
var eventEnable = new Array;

var storyStr_180 = new Array(
    "这个世界还和往日一样。",
    "你走在街上，没有发现什么有趣的事情。",
    "你走在街上，没有发现什么有趣的事情。",
    "你走在街上，没有发现什么有趣的事情。",
    "你走在街上，没有发现什么有趣的事情。",
    "你走在街上，没有发现什么有趣的事情。",
    "你走在街上，没有发现什么有趣的事情。",
    "你走在街上，没有发现什么有趣的事情。",
    "你走在街上，没有发现什么有趣的事情。",
    "今天够累了，快去睡觉吧。",
);
var storyStr_160 = new Array(
    "今天似乎有些许不同。",
    "你发现你的视线角度比往常要低。",
    "你走在街上，没有发现什么有趣的事情。",
    "你走在街上，没有发现什么有趣的事情。",
    "你走在街上，没有发现什么有趣的事情。",
    "你走在街上，没有发现什么有趣的事情。",
    "你走在街上，没有发现什么有趣的事情。",
    "你走在街上，没有发现什么有趣的事情。",
    "你走在街上，没有发现什么有趣的事情。",
    "今天够累了，快去睡觉吧。",
);
var storyStr_02 = new Array(
    //第一天 140 - 159
    "你终于发现了事情的不对，你已经和小学生一样矮了。",
    "路上的每个人都向你偷来好奇的目光，你本来就矮的身高低着头，显得更加的自卑。",
    "平时俯视着的女邻居们，此时却是已经要平视或者仰视去看他们了。",
    "你有一些恐慌，便去了最近的医院，打算做一些检查。",
    "医院的医生给你检查了一通，发现你的身体没有任何的异常，非常健康，仿佛你本来的身高便是这样，你没有任何办法，只能悻悻离去。",
    "你走在医院里，没有发现什么有趣的事情。",
    "你遇到一个女护士，身高大概有一米八几，总之你需要抬着头才能和她对视，可能是她急着走路，完全没留意到矮小的你，直接给你撞倒在地。",
    "高大的护士连忙对你说了几声抱歉，就匆匆离去。",
    "你发现这样已经影响到正常的生活了，最后你决定留在医院观察。",
    "你今天已经够累了，快去睡觉吧。",
    //第二天 70 - 79
    "你醒来后发现世界变得更大了，这次变化的更加明显，你连忙下床，穿着不合身的衣服去找了医生。",
    "你的身高相较于昨天整整少了一倍，医生也是第一次见到这样的情况，于是连忙为你做了一次全身检查。",
    "经过了一系列的检查，医生仍然没有发现你身体的任何异常，缩小后的身体完全和正常人一样，甚至还更加健康，这可能是一种新的病毒，医生让你继续呆在医院观察。",
    "现在你的身高现在和不到七八个月的婴儿一样大，为了你的安全，医院给你安排了一个护士，负责你的起居。",
    "给你安排的护士正是昨天撞到你的护士，昨天你可能还是她胸部的高度，而今天就已经只能直视着她的大腿了。",
    "你跟着护士回到了房间",
    "",
    "",
    "",
    "",
);

function addClickEvent(node: HTMLElement | null, logic: (ev: MouseEvent) => void) {
    if (node) {
        node.addEventListener('click', logic);
    }
}

function print(str: string): void {
    if (storyPage) storyPage.innerHTML += '<p>' + str + '</p>';
}
function printimg(str: string): void {
    if (storyPage) storyPage.innerHTML += '<img src="' + str + '">';
}

var sleepBtnClickEvent = (ev: MouseEvent) => {
    console.log(ev)
    if (gameEnd == true) {
        print("游戏结束，请刷新界面重新开始游戏。");
        return;
    }
    dayNum++;
    if (energy <= 0) {
        playerHeightShow = (playerHeightNum * 0.5).toFixed(2);
        print("你发现你的身高发生了变化。");
    } else if (energy > 0 && energy <= 20) {
        playerHeightShow = (playerHeightNum * 0.6).toFixed(2);
        print("你发现你的身高发生了变化。");
    } else if (energy > 20 && energy <= 40) {
        playerHeightShow = (playerHeightNum * 0.7).toFixed(2);
        print("你发现你的身高发生了变化。");
    } else if (energy > 40 && energy <= 60) {
        playerHeightShow = (playerHeightNum * 0.8).toFixed(2);
        print("你发现你的身高发生了变化。");
    } else if (energy > 60 && energy <= 80) {
        playerHeightShow = (playerHeightNum * 0.9).toFixed(2);
        print("你发现你的身高发生了变化。");
    } else {
        playerHeightShow = playerHeightNum.toString();
        print("你舒舒服服睡了一觉。");
    }
    energy = 100;
}

var informationBtnClickEvent = (ev: MouseEvent) => {
    if (storyPage) {
        storyPage.innerHTML += '<p>' + "你的身高为：" + playerHeightShow + "厘米(" + playerHeightNum * 10 + "毫米)" + '</p>';
        storyPage.innerHTML += '<p>' + "你当前的精力还剩下：" + energy + '</p>';
    }
}

var searchBtnClickEvent = (ev: MouseEvent) => {
    if (gameEnd == true) {
        print("游戏结束，请刷新界面重新开始游戏。");
        return;
    }
    if (energy <= 0) {
        print("你感觉浑身上下都提不起任何力气。");
        return;
    } else {
        energy -= 10;
    }
    if (playerHeightNum == 180) {
        print(storyStr_180[eventEnable[0]]);
        eventEnable[0]++;
    }
    if (playerHeightNum >= 160 && playerHeightNum < 180) {
        print(storyStr_160[eventEnable[1]]);
        eventEnable[1]++;
    }
    //医院
    if (playerHeightNum >= 140 && playerHeightNum < 160 && eventEnable[2] < 10) {
        print(storyStr_02[eventEnable[2]]);
        eventEnable[2]++;
        console.log(eventEnable[2]);
        return;
    }
    if (eventEnable[2] >= 10) {
        print(storyStr_02[eventEnable[2]]);
        eventEnable[2]++;
        console.log(eventEnable[2]);
        return;
    }
}

var testBtnClickEvent = (ev: MouseEvent) => {
    printimg("./img/01.png");
}

export default {
    init() {
        for (let i = 0; i < 10; i++) eventEnable[i] = 0;

        var dayNode = document.getElementById("day");
        if (dayNode) {
            dayNode.innerHTML = "现在是第" + dayNum + "天";
        }

        addClickEvent(document.getElementById("sleepBtn"), sleepBtnClickEvent);
        addClickEvent(document.getElementById("informationBtn"), informationBtnClickEvent);
        addClickEvent(document.getElementById("testBtn"), testBtnClickEvent);
        addClickEvent(document.getElementById("searchBtn"), searchBtnClickEvent);
    }
}